Method and system for accessing a virtual seismic cube

ABSTRACT

A method for processing requests includes receiving, from a requestor, a first read request to read a portion of a seismic cube. The first read request includes a virtual location of the portion. The method further includes querying a seismic cube index to obtain a mapping parameter and a storage location of a section including the portion of the seismic cube. The mapping parameter maps virtual locations in the seismic cube with data locations in the section. The section is identified using the virtual location of the portion. The method further includes calculating, on a computer processor and using the mapping parameter, a data location in the section corresponding to the virtual location of the portion, and transmitting a second read request to the storage location of the section. The second read request includes the data location. The requestor receives the portion from the storage location.

BACKGROUND

Seismic data is gathered and analyzed for many different purposes. Forexample, seismic data is used to identify fault zones for earthquakepredictions, plan and mine for minerals, and extract fluids, such ashydrocarbons, and drilling other wells from the Earth's subsurfaceformations.

For example, with respect to extracting fluids, seismic data is used ina variety of stages of the process. Specifically, obtaining fluidsgenerally require a planning stage, a drilling stage, and a productionstage. Each stage may be performed one or more times. In the planningstage, surveys are often performed using acquisition methodologies, suchas seismic mapping to generate acoustic images of undergroundformations. The seismic data is analyzed to determine the presence ofsubterranean assets, such as valuable fluids or minerals, or todetermine whether the formations have characteristics suitable forstoring fluids. Although the subterranean assets are not limited tohydrocarbons such as oil, throughout this document, the terms “oilfield”and “oilfield operation” may be used interchangeably with the terms“field” and “field operation” to refer to a site where any types ofvaluable fluids or minerals can be found and the activities required toextract them. The terms may also refer to sites where substances aredeposited or stored by injecting substances into the surface usingboreholes and the operations associated with this process.

During the drilling stage, a borehole is drilled into the earth at aposition identified during the survey stage. Specifically, a drillingrig rotates a drill string that has a bit attached. Casing may be addedto ensure the structural integrity of the borehole. During drilling,seismic data is used to direct the trajectory, or path in which theborehole is drilled.

During the completion stage, the drilling equipment is removed and thewell is prepared for production. During the production stage, fluids areproduced or removed from the subsurface formation. In other words, thefluids may be transferred from the subsurface formation to one or moreproduction facilities (e.g. refineries). During the completion stage andproduction stage, seismic data may be used to analyze and monitor theprocesses of the respective stages.

SUMMARY

In general, in one aspect, embodiments relate to a method for processingrequests for seismic data. The method includes receiving, from arequestor, a first read request to read a portion of a seismic cube. Thefirst read request includes a virtual location of the portion. Themethod further includes querying a seismic cube index to obtain amapping parameter and a storage location of a section including theportion of the seismic cube. The mapping parameter maps virtuallocations in the seismic cube with data locations in the section. Thesection is identified using the virtual location of the portion. Themethod further includes calculating, on a computer processor and usingthe mapping parameter, a data location in the section corresponding tothe virtual location of the portion, and transmitting a second readrequest to the storage location of the section. The second read requestincludes the data location. The requestor receives the portion from thestorage location.

In general, in one aspect, embodiments relate to a system that includesa memory device, a seismic cube index stored in the memory device andincluding index entries. An index entry includes a virtual location of asection, a storage location of the section, and a mapping parameter formapping virtual locations in a seismic cube to data locations in thesection. The system further includes a computer processor and a seismiccube index application, executing on the computer processor. The seismiccube index application is configured to receive a first read request toread a first portion of the seismic cube. The first read requestincludes a virtual location of the first portion. Using the virtuallocation of the portion, the seismic cube index is queried to obtain themapping parameter and the storage location of the section having theportion. The section is identified using the virtual location of thesection and the virtual location of the portion. Using the mappingparameter, a first data location in the first section corresponding tothe virtual location of the first portion is calculated. Further, theseismic cube index application is configured to transmit a second readrequest to the storage location of the section. The second read requestincludes the first data location.

In general, in one aspect, embodiments relate to a distributed computersystem that include multiple computing devices. The computing devicesinclude an index computing device operatively connected to at least onestorage device and at least one analysis computing device. The analysiscomputing device includes at least one analysis application. The indexcomputing device is configured to store a seismic cube index in a memorydevice, receive a first write request for writing resultant seismic datato seismic cube. The first write request including a virtual location ofa portion of the seismic cube. The index computing device is furtherconfigured to query, using the virtual location of the portion, theseismic cube index to identify a section having a portion correspondingto the virtual location, detect that the first section is being accessedby multiple analysis applications, select a storage device for storing anew section of seismic cube, send, to the storage device, a storagerequest to store the resultant seismic data as the new section, updatethe seismic cube index to reflect that the portion is stored in astorage location on the storage device, and update the seismic cubeindex to indicate, for the section, that a new version is created forthe portion.

Other aspects will be apparent from the following description and theappended claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows an example of a schematic diagram of a data collectionsystem in one or more embodiments.

FIG. 2 shows an example schematic diagram of a distributed computersystem in one or more embodiments.

FIG. 3 shows an example of a schematic diagram of an index entry in oneor more embodiments.

FIGS. 4-6 show examples of flowcharts in one or more embodiments.

FIGS. 7.1, 7.2, and 8 shows examples in one or more embodiments.

DETAILED DESCRIPTION

Specific embodiments of the invention will now be described in detailwith reference to the accompanying figures. Like elements in the variousfigures are denoted by like reference numerals for consistency.

In the following detailed description of embodiments of the invention,numerous specific details are set forth in order to provide a morethorough understanding of the invention. However, it will be apparent toone of ordinary skill in the art that the invention may be practicedwithout these specific details. In other instances, well-known featureshave not been described in detail to avoid unnecessarily complicatingthe description.

In general, embodiments of the invention provide a method and system forprocessing requests for seismic data. Specifically, embodiments groupthe seismic data into a seismic cube. A seismic cube is a set of seismicdata elements specified for each portion of a geographic region thatspecifies a position of each data element in the geographic region. Theseismic cube is capable of being represented as a cube of imaging data.Sections of the seismic cube are distributed, such that the seismic cubemay be stored on multiple storage devices. A seismic cube index storesassociations between sections of the seismic cube and which storagedevice has the section. The seismic cube index further maintains amapping parameter that defines how locations in a section map tolocations in the seismic cube.

FIG. 1 shows an example of a schematic diagram of a data collectionsystem in one or more embodiments. Specifically, FIG. 1 depicts aschematic view, partially in cross section of a field (100) having dataacquisition tools (102-1), (102-2), (102-3), and (102-4) positioned atvarious locations in the field for gathering data of a subterraneanformation (104). As shown, the data collected from the tools (102-1through 102-4) can be used to generate data plots (108-1 through 108-4),respectively.

As shown in FIG. 1, the subterranean formation (104) includes severalgeological structures (106-1 through 106-4). As shown, the formation hasa sandstone layer (106-1), a limestone layer (106-2), a shale layer(106-3), and a sand layer (106-4). A fault line (107) extends throughthe formation. In one or more embodiments, the static data acquisitiontools are adapted to measure the formation and detect thecharacteristics of the geological structures of the formation.

As shown in FIG. 1, a drilling operation is depicted as being performedby drilling tools (102-2) suspended by a rig (101) and advanced into thesubterranean formations (104) to form a wellbore (103). The drillingtools (102-2) may be adapted for measuring downhole properties usinglogging-while-drilling (“LWD”) tools.

A surface unit (now shown) is used to communicate with the drillingtools (102-2) and/or offsite operations. The surface unit is capable ofcommunicating with the drilling tools (102-2) to send commands to thedrilling tools (102-2), and to receive data therefrom. The surface unitis preferably provided with computer facilities for receiving, storing,processing, and/or analyzing data from the oilfield. The surface unitcollects data generated during the drilling operation and produces dataoutput which may be stored or transmitted. Computer facilities, such asthose of the surface unit, may be positioned at various locations aboutthe oilfield and/or at remote locations.

Sensors, such as gauges, may be positioned about the oilfield to collectdata relating to various oilfield operations as described previously.For example, the sensor may be positioned in one or more locations inthe drilling tools (102-2) and/or at the rig (101) to measure drillingparameters, such as weight on bit, torque on bit, pressures,temperatures, flow rates, compositions, rotary speed and/or otherparameters of the oilfield operation. The sensors may also have featuresor capabilities, of monitors, such as cameras (not shown), to providepictures of the operation. Surface sensors or gauges may be deployedabout the surface systems to provide information about the surface unit,such as standpipe pressure, hook load, depth, surface torque, and rotaryrpm, among others. Downhole sensors or gauges (i.e., sensors locatedwithin the borehole) are disposed about the drilling string and/orwellbore to provide information about downhole conditions, such aswellbore pressure, weight on bit, torque on bit, direction, inclination,collar rpm, tool temperature, annular temperature and tool face, andother such data. In one or more embodiments, additional or alternativesensors may measure properties of the formation, such as gamma rayssensors, formation resistivity sensors, formation pressure sensors,fluid sampling sensors, hole-calipers, and distance stand-offmeasurement sensors, and other such sensors. The sensors may continuallygather data and directly or indirectly update the seismic cube asdiscussed below. In one or more embodiments, with each update to theseismic cube, the seismic cube index is updated to reflect theadditional sensor data.

The data gathered by the sensors may be collected by one or morecomponents of the system shown in FIG. 2. The data collected by thesensors may be used alone or in combination with other data. The datamay be collected in one or more databases and/or transmitted on oroffsite. All or select portions of the data may be selectively used foranalyzing and/or predicting oilfield operations of the current and/orother wellbores. The data may be historical data, real time data orcombinations thereof. The real time data may be used in real time, orstored for later use. The data may also be combined with historical dataor other inputs for further analysis. The data may be stored in separatedatabases, or combined into a single database.

The collected data may be used to perform activities, such as wellboresteering. In another example, the seismic data output may be used toperform geological, geophysical, and/or reservoir engineering. In thisexample, the reservoir, wellbore, surface and/or process data may beused to perform reservoir, wellbore, geological, geophysical or othersimulations. The data outputs from the oilfield operation may begenerated directly from the sensors, or after some preprocessing ormodeling. These data outputs may act as inputs for further analysis.

As shown in FIG. 1, data plots (108-1 through 108-4) are examples ofplots of static properties that may be generated by the data acquisitiontools (102-1 through 102-4), respectively. For example, data plot(108-1) is a seismic two-way response time. In another example, dataplot (108-2) is core sample data measured from a core sample of theformation (104). In another example, data plot (108-3) is a loggingtrace. In another example, data plot (108-4) is a plot of a dynamicproperty, the fluid flow rate over time. In addition to theaforementioned data plots, a seismic cube may be constructed from thedifferent types of data. Other data may also be collected, such as, butnot limited to, historical data, user inputs, economic information,other measurement data, and other parameters of interest.

While a specific subterranean formation (104) with specific geologicalstructures is depicted, it will be appreciated that the formation maycontain a variety of geological structures. Fluid, rock, water, oil,gas, and other geomaterials may also be present in various portions ofthe formation. Each of the measurement devices may be used to measureproperties of the formation and/or its underlying structures. While eachacquisition tool is shown as being in specific locations along theformation, it will be appreciated that one or more types of measurementmay be taken at one or more location across one or more fields or otherlocations for comparison and/or analysis using one or more acquisitiontools. The terms measurement device, measurement tool, acquisition tool,and/or field tools are used interchangeably in this documents based onthe context.

FIG. 2 shows an example schematic diagram of a distributed computersystem in one or more embodiments. As shown in FIG. 2, the distributedcomputer system includes storage devices (e.g., storage device M(202-1), storage device N (202-2)), analysis computing device (e.g.,analysis computing device X (204-1), analysis computing device Y(204-2)), index computing device (206), and a network (212) in one ormore embodiments. Each of these components is described below.

A storage device (e.g., storage device M (202-1), storage device N(202-2)) is a device for storing data. For example, a storage device maybe a storage server, a hard disk, an optical drive such as a compactdisk drive or digital video disk (DVD) drive, a flash memory stick, oranother type of device. The storage devices are geographicallydistributed in one or more embodiments. For example, storage device M(202-1) may be located in Venezuela while storage device N (202-2) maybe located in Europe. The storage devices (e.g., storage device M(202-1), storage device N (202-2)) include functionality to store theseismic cube (208) in one or more embodiments. Specifically, eachstorage device includes functionality to store at least a section (e.g.,seismic cube section M (210-1), seismic cube section N (210-2)) of theseismic cube (208). A section of the seismic cube is a contiguous regionof seismic data. More specifically, a section of seismic cube may bedefined by geographic coordinates specifying a boundary of the section.

In one or more embodiments, the sections of the seismic cube stored bydifferent storage devices may or may not be overlapping. For example, amain server may store the entire seismic cube while other servers storesections of the seismic cube. Additionally, although not shown in FIG.2, the analysis computing device may also store a portion of the seismiccube, such as a portion that the analysis application is using or hasrecently used.

In one or more embodiments, each computing device (e.g., analysiscomputing device X (204-1), analysis computing device Y (204-2), indexcomputing device (206)) includes one or more processor(s) (e.g.,processor X (218-1), processor Y (218-2), index processor (218-3)) andassociated memory (e.g., memory device X (216-1), memory device Y(214-2), index memory device (216-3)) (e.g., random access memory (RAM),cache memory, flash memory, etc.). The processor (e.g., processor X(218-1), processor Y (218-2), index processor (218-3)) includesfunctionality to execute the corresponding application (e.g., analysisapplication X (220-1), analysis application Y (220-2), seismic cubeindex application (222)). In other words, the corresponding applicationexecutes on the processor (e.g., processor X (218-1), processor Y(218-2), index processor (218-3)). The memory (e.g., memory device X(216-1), memory device Y (216-2), index memory device (216-3)) includesfunctionality to store data and instructions for use by the processor(e.g., processor X (218-1), processor Y (218-2), index processor(218-3)) while executing the corresponding application. Additionally,one or more of the computing devices may include its own storage device(not shown) (e.g., a hard disk, an optical drive such as a compact diskdrive or digital video disk (DVD) drive, a flash memory stick, etc.),and numerous other elements and functionalities typical of today'scomputers (not shown).

One or more of the computing devices may further include input means,such as a keyboard, a mouse, or a microphone, and output means, such asa monitor (e.g., a liquid crystal display (LCD), a plasma display, orcathode ray tube (CRT) monitor). Many different types of computingdevices exist, and the aforementioned input and output means may takeother forms. Generally speaking, the computing device (e.g., analysiscomputing device X (204-1), analysis computing device Y (204-2), indexcomputing device (206)) includes at least the minimal processing, input,and/or output means necessary to practice embodiments of the invention.For example, one or more of the computing devices may be a desktopcomputer, a laptop computer, one or more servers, a mobile computingdevice, such as a tablet computer or a mobile phone, or any other typeof computing device.

Further, although not shown in FIG. 2, one or more of the computingdevices may, itself, be a distributed computer. For example, portionsthe computing device may be located at a remote location and connectedto the other portions over a network, such as network (212) or anothernetwork. For example, the computing device may have multiple nodes,where each portion may be located on a different node. In one or moreembodiments, the node corresponds to a computer system. Alternatively,the node may correspond to a processor with associated physical memory.The node may alternatively correspond to a processor or micro-core of aprocessor with shared memory and/or resources. Further, softwareinstructions to perform embodiments may be stored, temporarily orpermanently, in whole or in part, on a non-transitory computer readablemedium such as a compact disc (CD), a local or remote storage device,local or remote memory, a diskette, or any other computer readablestorage device.

The computing devices (e.g., analysis computing device X (204-1),analysis computing device Y (204-2)), index computing device (206)) areconnected via a network (212). The network (212) may be a local areanetwork (LAN), a wide area network (WAN) such as the Internet, any othertype of network, or a combination of one or more types of networks.

Continuing with FIG. 2, an analysis computing device (e.g., analysiscomputing device X (204-1), analysis computing device Y (204-2))includes an analysis application (e.g., analysis application X (220-1),analysis application Y (220-2)) in one or more embodiments. In one ormore embodiments, the analysis application (e.g., analysis application X(220-1), analysis application Y (220-2)) includes functionality toanalyze seismic data. For example, the analysis application (e.g.,analysis application X (220-1), analysis application Y (220-2)) mayinclude functionality to receive seismic data, directly or indirectly,from one or more sensors dispersed throughout the oilfield and analyzethe seismic data. The analysis application (e.g., analysis application X(220-1), analysis application Y (220-2)) may further includefunctionality to create a seismic cube (208) (discussed below) or aportion of the seismic cube (208). Further, in one or more embodiments,the analysis application (e.g., analysis application X (220-1), analysisapplication Y (220-2)) includes functionality to request a portion ofthe seismic cube and store resultant seismic data in the seismic cube.

By way of an example of the analysis application, the analysisapplication may be an oilfield application that includes functionalityto plan an oilfield (e.g., identify a subsurface reservoir havinghydrocarbons, generate a desired trajectory to drill a borehole to thehydrocarbons, etc.), assist in drilling operations (e.g., monitordrilling equipment while the drilling equipment is drilling theborehole, receive sensor data from the drilling equipment, analyze thesensor data with the seismic data from the seismic cube, generate analternative trajectory or update the drilling equipment based on theanalysis, and transmit commands to the drilling equipment to adjust thedrilling of the oilfield), and/or assist in production operations (e.g.,monitor the production from a particular oil well, monitor a network ofwells, analyze the production with respect to the seismic data in theseismic cube, and transmit a command to one or more wells to adjust theflow of hydrocarbons from the one or more wells). The above are merelyexamples of the analysis application (e.g., analysis application X(220-1), analysis application Y (220-2)). The analysis application mayperform other functions without departing from the scope of the claims.

The portion of seismic cube requested and/or stored by the analysisapplication may or may not correspond to a section of the seismic cubestored by a storage device. Specifically, a portion may be a subsectionof a section of the seismic cube stored by a storage device, an entiresection of the seismic cube stored by a storage device, or span all orpart of multiple sections of the seismic cube stored by multiple storagedevices. In one or more embodiments, the partitioning of the seismiccube into sections is hidden from the analysis application (e.g.,analysis application X (220-1), analysis application Y (220-2)). Inother words, the analysis application (e.g., analysis application X(220-1), analysis application Y (220-2)) is unaware that there aremultiple sections of the seismic cube (208) or that the multiplesections are stored on different storage devices (e.g., storage device M(202-1), storage device N (202-2)). Thus, as shown by the dashed linesin FIG. 2, to each analysis application (e.g., analysis application X(220-1), analysis application Y (220-2)), the seismic cube is a completeunified collection of seismic data for a particular geographic region.

Continuing with FIG. 2, the index computing device (206) is a computingdevice for managing access to the seismic cube. Specifically, the indexcomputing device (206) is configured to intercept requests for portionsof the seismic cube (208) and transmit requests for the portions of theseismic cube to the corresponding or particular storage device(s) (e.g.,storage device M (202-1), storage device N (202-2)) storing the portion.The index computing device includes a seismic cube index application(222), seismic cube metadata (228), and a seismic cube index (224) inone or more embodiments.

The seismic cube index application (222) includes functionality toreceive an intercepted request from an analysis application (e.g.,analysis application X (220-1), analysis application Y (220-2)) for aportion of the seismic cube. The intercepted request may be a readrequest to read the portion of the seismic cube or a write request towrite resultant seismic data to the portion of seismic cube. For a readrequest or write request, the seismic cube index application (222) isconfigured to identify the section(s) of seismic cube having the portionof the seismic cube, identify one or more storage devices that have thesection(s), and transmit the read request or write request to the one ormore storage devices. The seismic cube index application (222) mayfurther be configured to merge sub-portions of the seismic cube fromdifferent sections into a complete portion of the seismic cube andtransmit the complete portion to the analysis application. Processing aread request, such as by the seismic cube index application (222), isdiscussed below and in FIG. 5. Processing a write request, such as bythe seismic cube index application (222), is discussed below and in FIG.6.

In one or more embodiments, seismic cube metadata (228) providesinformation about the seismic cube (208). For example, seismic cubemetadata may include a geometry of the seismic cube (e.g., depth, size,number of in-lines, number of cross-lines, sample rate, samples pertrace, reference point on seismic cube), statistics about the seismiccube (e.g., average values, minimum values, maximum values of theseismic cube), and other information about the seismic cube (208).

The seismic cube index application (222) is operatively connected to theseismic cube index (224). In one or more embodiments, the seismic cubeindex (224) is stored in a data repository (not shown). In one or moreembodiments, the data repository is any type of storage unit and/ordevice (e.g., a file system, database, collection of tables, or anyother storage mechanism) for storing data. Further, the data repositorymay include multiple different storage units and/or devices. Themultiple different storage units and/or devices may or may not be of thesame type or located at the same physical site. For example, a portionof the data repository may be on one server while another portion isdistributed across the Internet and on another server.

The seismic cube index (224) stores information about where portions ofthe seismic cube are stored. In one or more embodiments, the seismiccube index (224) includes index entries (e.g., index entry 1 (226-1),index entry 2 (226-2), index entry n (226-3)). An index entry (e.g.,index entry 1 (226-1), index entry 2 (226-2), index entry n (226-3))identifies where a section of the seismic cube is located with respectto the larger seismic cube and which storage device stores the section.For example, the index entry may identify seismic cube section M (210-1)as corresponding to the top right quadrant of the seismic cube (208) andsection N (210-2) as corresponding to the bottom middle region of theseismic cube (208).

FIG. 3 shows an example of a schematic diagram of an index entry (302)in one or more embodiments. As shown in FIG. 3, an index entry (302)includes a virtual location of the section in the seismic cube (304)(hereinafter “section virtual location”), a storage location of thesection (306) (hereinafter “section storage location”), a mappingparameter (308), a version information for the section (310)(hereinafter “section version information”). Each of these components isdescribed below.

In one or more embodiments, a section virtual location (304) is anidentifier of the position of the section in relation to the entireseismic cube. In other words, the section virtual location (304)identifies where the section is located within the context of the entireseismic cube. Different identification techniques may be used as thesection virtual location (304).

By way of an example, consider the scenario in which the entire seismiccube is defined by a set of geographic coordinates specifying theboundaries of the geographic region represented by the seismic cube. Thesection virtual location may be specified using one or more offsets andlengths (e.g., one offset and length for each dimension of the threedimensional section) from a particular geographic coordinate in the setof geographic coordinates defining the seismic cube.

By way of another example, the section virtual location may be specifiedusing geographic coordinates specifying the boundaries of the geographicregion represented by the particular section. In other words, thesection virtual location may use the same identification mechanism as inthe example discussed above for the entire seismic cube.

As another example, the section virtual location may be specified bydefining the actual boundaries of the section or the boundaries of thesection in relation to the entire seismic cube. For example, the sectionvirtual location may be specified using a metes and bounds description.As another example, the section virtual location may be specified usinga starting point and ending point for each dimension of the threedimensional section.

The above are merely a few examples of identification mechanisms thatmay be used as the section virtual location (304). Other identificationmechanisms may be used without departing from the scope of the claims.

Continuing with FIG. 3, the section storage location (306) specifies theparticular storage device having the section and/or the location of thesection on the storage device. For example, the section storage locationmay include a name of the storage device having the section, an internetprotocol address for the storage device, or another identificationmechanism. The location of the section on the storage device may be, forexample, a file name or other identifier of the section on the storagedevice. Other identification mechanisms may be used for the sectionstorage location (306) without departing from the scope of the claims.

In one or more embodiments, the mapping parameter (308) defines howlocations in the seismic cube map to locations in the section.Specifically, the mapping parameter (308) defines how a requestedportion of the seismic cube maps to the section. For example, themapping parameter may identify that inline X, crossline Y of section Amaps to inline Z, crossline W of seismic cube B. As another example, themapping parameters may specify a set of equations for identifying arequested portion within the section. For example, the mapping parametermay indicate, for each dimension, a particular value to subtract fromthe virtual location of the requested portion. Thus, an analysisapplication may use a virtual location of the requested portion withoutregard to how the requested portion fits within the entire section.

The section version information (310) provides information about theversion of the section. For example, the section version information mayidentify the version number of the section that the storage device isstoring. The version number may be a natural number (e.g., version “1”,version “2”, etc.), a timestamp of the version, a hash value, or otheridentifier. For example, each time the section is modified, the sectionversion information for the section may be updated. Additionally oralternatively, the version information of the section may includeadditional data, such as a username of a user that last updated thesection of the seismic cube, comments from the user that updated theseismic cube, and other information. For example, the comments from theuser may identify how the section of the seismic cube is updated for thenew version. Alternatively or additionally, in one or more embodiments,the index entry may correspond to a reference to a versioning table. Theversioning table may include a username, comments of the user, data,program associated to the software version, and other information.

In one or more embodiments, the section version information (310) mayinclude separate version information for individual portions of thesection. For example, consider the scenario in which an analysisapplication updates a first portion of the section. In the example, thesection version information may include an identifier of the firstportion of the section to uniquely identify the first portion and atimestamp specifying when the first portion of the section was lastupdated.

Although the above and FIGS. 2 and 3 discuss and show a seismic cubeindex application as located on a separate device than the analysisapplication, the analysis application and the seismic cube indexapplication, with or without the seismic cube index, may be on the samecomputing device in one or more embodiments. Specifically, the seismiccube index application may be a local application on the analysiscomputing device. Further, rather than being a stand-alone applicationin one or more embodiments, the seismic cube index application may be aplug-in for the analysis application. For example, native code of theanalysis application may include native functionality to interact with asingle file having an entire seismic cube. With the distributed seismiccube, the native code may be redirected to a seismic cube indexapplication plug-in that operates to identify the storage location ofthe portion of the seismic cube using the seismic cube index. In otherwords, the seismic cube index application as a plug-in may hide theexistence of the distributed seismic cube from the native code. By wayof another example, in one or more embodiments, the seismic cube indexapplication may be an architectural part of the analysis applicationthat hides the complexity of the seismic cube. For example, thearchitectural part may be a separate class, routine, or other componentof the analysis application.

Although not shown in FIGS. 2 and 3, the analysis application, userusing the analysis application, oilfield company, or other entity may beassociated with one or more policies. Specifically, the policies mayinclude, for example, a write policy and a read access policy. Forexample, the write policy may define whether to ask the user for thestorage location, ask the user whether to write a new version, specifywhen to write a new version, specify the storage location for a newversion, specify how to write a new version (e.g., whether to write onlocal memory and then commit the write to another storage location). Aread access policy may specify which version to use when multipleversions are available (e.g., whether to ask a user, use the most recentversion, use a version that satisfies certain parameters, etc.), whereto obtain a version when multiple duplicates are available. One or moreof policies may be specified as a predefined ordered list of storagelocations. Alternative or additionally, one or more of the policies maybe specified in terms of a function of properties of the desired storagelocation, such as data access speed, accessibility, data integrity,security, amount of storage space available, and other information. Theone or more policies may be enforced by the seismic cube indexapplication, the analysis application, another application, or acombination thereof.

FIGS. 4-6 show examples of flowcharts in one or more embodiments. Whilethe various steps in these flowcharts are presented and describedsequentially, one of ordinary skill will appreciate that some or all ofthe steps may be executed in different orders, may be combined oromitted, and some or all of the steps may be executed in parallel.Furthermore, the steps may be performed actively or passively. Forexample, some steps may be performed using polling or be interruptdriven in accordance with one or more embodiments of the invention. Byway of an example, determination steps may not require a processor toprocess an instruction unless an interrupt is received to signify thatcondition exists in accordance with one or more embodiments of theinvention. As another example, determination steps may be performed byperforming a test, such as checking a data value to test whether thevalue is consistent with the tested condition in accordance with one ormore embodiments of the invention.

FIG. 4 shows an example of a flowchart for accessing the seismic cube.For example, the steps of FIG. 4 may be performed by the analysisapplication executing on the analysis computing device in one or moreembodiments. In 401, a read request for a portion of the seismic cube issent. In one or more embodiments, the read request references theportion of the seismic cube by using the location of the portionrelative to the entire seismic cube. In other words, the read requestmay include merely the portion virtual address as the reference to theparticular portion of the seismic cube that is requested. By allowingthe read request to include the portion virtual address rather than theactual address, embodiments provide a mechanism for the analysisapplication to be unaware that the seismic cube is distributed or how toaccess the particular portion of the seismic cube. The portion virtuallocation in the read request may be specified similar to the sectionvirtual location discussed above and in FIG. 3. Specifically, theidentification techniques discussed above with respect to identifyingthe location of a section in the seismic cube may be used to identifythe location of the portion in the seismic cube.

Continuing with the discussion, the analysis application may or may notbe aware that the seismic cube is remotely stored. For example, in oneor more embodiments, from the analysis application perspective, sendingthe read request may be performed by performing a general read systemcall to the operating system of the analysis computing device. Theoperating system may include instructions for transmitting the readrequest to a remote address corresponding to the seismic cube. Asanother example, the analysis application may use a remote address, suchas a domain address, an internet protocol address, or another address,defined for the seismic cube while being simultaneously unaware of howthe seismic cube is stored. For example, if the analysis application orthe operating system uses a domain address or other address, the readrequest may be transmitted to an internet protocol address of the indexcomputing device. Thus, the analysis computing device can remain unawareof the index computing device.

In 403, a portion of the seismic cube is received in one or moreembodiments. The portion of the seismic cube may be received from thestorage device storing the portion or the portion may be received fromthe index computing device in one or more embodiments.

In 405, the seismic data in the portion of the seismic cube is analyzed.For example, consider the scenario in which the seismic data in theseismic cube is used for oilfield operations. In such a scenario,analyzing the seismic data may be performed to identify rock properties,identify a location of a reservoir, plan a borehole trajectory to thereservoir, analyze the drilling operations of the oilfield, or performother such steps.

In 407, oilfield operations may be performed based on the analysis inone or more embodiments. For example, the oilfield operations may beperformed by the analysis computing device sending a command to drillingor production equipment. For drilling, by way of examples, the commandmay be to modify the trajectory in which the borehole is drilled, adjusta component of the equipment (e.g., adjust the bit or a position of astabilizer), or perform another operation. For production operations, byway of an example, the command may be to adjust a choke position of oneor more wells to change the flow of hydrocarbons to the wells. Withrespect to planning oilfield operations, the analysis application maygenerate a well plan identifying whether, where, and how to drill at theoilfield. Similar to other steps of FIG. 4, although FIG. 4 shows theperformance of oilfield operations as being after analyzing seismicdata, the oilfield operations may be performed any time, if at all,during the process of FIG. 4.

In 409, a determination is made whether the analysis in 405 createsresultant seismic data for storage in the seismic cube. In 411, if theanalysis in 405 creates resultant seismic data, then a write request issent to write the resultant seismic data to the seismic cube. A writerequest may be sent in a manner similar to sending the read request.Specifically, the write request may reference the portion of the seismiccube by using the location of the portion relative to the entire seismiccube in one or more embodiments.

Continuing with the discussion, the analysis application may or may notbe aware that the seismic cube is remotely stored. For example, in oneor more embodiments, from the analysis application perspective, sendingthe write request may be performed by performing a general write systemcall to the operating system of the analysis computing device. Theoperating system may include instructions for transmitting the writerequest to the remote address corresponding to the seismic cube. Asanother example, the analysis application may use the remote addressdefined for the seismic cube while being simultaneously unaware of howthe seismic cube is stored.

In 413, a determination is made whether to continue. For example, theanalysis application may continue to request seismic data from theseismic cube and write resultant seismic data to the seismic cube. Inone or more embodiments, the processing by the analysis application maybe performed continually while oilfield operations are performed. Forexample, as the seismic cube is updated with new sensor data from theoilfield, the analysis application may continue to analyze the seismiccube with the new sensor data and continue to send commands to theequipment at the oilfield.

FIG. 5 shows a flowchart for the seismic cube index application (i.e.,index application) to process read requests in one or more embodiments.In 501, a read request to read a portion of the seismic cube isintercepted. Specifically, as discussed above, the read request isrouted to the index application allowing the analysis application to beunaware of the existence of the index application. The read request maybe received from a requestor. For example, the requestor may be a user,the analysis application, or another entity. The receiving of the readrequest may be based on the read request being addressed to the seismiccube index application or the seismic cube index application mayintercept the request addressed to another entity. Other methods forhiding the existence of the seismic cube index application may be usedwithout departing from the scope of the claims.

In 503, from the read request, a virtual location of the portion of theseismic cube is obtained in one or more embodiments. In one or moreembodiments, the read request conforms to a predefined protocol thatspecifies the position of the virtual location in the read request. Theindex application extracts the virtual location from the read request inaccordance with the predefined protocol.

In 505, the seismic cube index is queried to obtain a storage locationof the section or sections having the portion of the seismic cube in oneor more embodiments. In particular, until the section or sections areidentified, the section virtual location is compared with the portionvirtual location for each entry in the seismic cube index. Thecomparison determines whether the portion is in all or part of theboundaries of the section. If the portion is within the boundaries ofthe section, then the section is identified. Additionally, in one ormore embodiments, a determination is made based on the versioninginformation and a read access policy. For example, consider the scenarioin which the read access policy specifies that the most current versionshould be used. In such an example, the section version information maybe used to determine whether the section has the most current version.If the section is not the most current version, then the most currentversion having the portion is used. Additionally or alternatively, theread access policy may be used to determine which storage location touse when multiple copies of the section are available.

In 507, the seismic cube index is queried to obtain mapping parametersfor mapping data locations in the one or more section of the seismiccube with the virtual location in the read request in one or moreembodiments. Specifically, the mapping parameters are extracted from theindex entry corresponding to the section.

In 509, data locations in the section(s) corresponding to the portion ofthe seismic cube are calculated in one or more embodiments. In one ormore embodiments, calculating the data locations in the section includesusing the mapping parameters to map the portion virtual location to thesection. For example, the mapping parameters may indicate to subtract,for each dimension, a predefined value from each dimension to locateportion in the section. As another example, the mapping parameters mayprovide a function specifying how to map a portion virtual location tothe data locations in the section. Thus, the index application may usethe portion virtual location as input to the function in the mappingparameters to obtain the data location in the section.

In 511, the read request is transmitted on behalf of the analysisapplication to the storage location of the section(s) in one or moreembodiments. Specifically, for each section identified in 505, a readrequest is transmitted to the particular location in the storage devicestoring the section. The read request transmitted in 511 includes thedata location calculated in 509. The read request may also include anidentifier of the analysis application, such as an internet protocoladdress.

In 513, the portion of the seismic cube is received from the section(s)in one or more embodiments. In one or more embodiments, the seismic cubeindex application receives the portions from the section(s).

In 515, a determination is made whether portion spans multiple sectionsin one or more embodiments. If the portion spans multiple sections, thenin 517, the portion of the seismic cube from the multiple sections maybe merged to create a single unified portion. Specifically, eachsub-portion from each different section is merged together into a singleunified section according to where the sub-portion is in relation to theentire seismic cube. As discussed above, sections of the seismic cubemay overlap in one or more embodiments. By way of an example, mergingfrom the different sections of the seismic cube includes determiningwhich section has the most recent version of the sub-portion. Thesection of the seismic cube having the most recent version of thesub-portion is used for the sub-portion, sub-portions from othersections may be cropped to remove the overlapping part of thesub-portion. By merging the sub-portions from the different sectionsinto a single unified portion, the analysis application may maintain asingle unified view of the seismic cube.

In 519, the portion (i.e., single unified portion in the case ofmerging) of the seismic cube is transmitted to the analysis application.Transmitting the portion of the seismic cube to the analysis applicationmay be performed by the index application or by the storage devicehaving the section in one or more embodiments. Specifically, theanalysis application may receive the portion directly from the storagedevice(s) or directly from the index computing device.

Although not shown in FIG. 5, rather than the seismic cube indexapplication transmitting the second read request directly to the storagelocation(s), the seismic cube index application may indirectly transmitthe read request by redirecting the analysis application to the storagelocations.

FIG. 6 shows an example flowchart for the index application to process awrite request in one or more embodiments. In 601, the index applicationintercepts a write request for writing resultant seismic data to theseismic cube. Intercepting the write request may be performed in amanner to intercepting the read request as discussed above and in 501 ofFIG. 5. Specifically, as discussed above, the write request is routed tothe index application allowing the analysis application to be unaware ofthe existence of the index application.

In 603 of FIG. 6, from the write request, a virtual location of theportion of the seismic cube is obtained in one or more embodiments. Inone or more embodiments, the write request conforms to a predefinedprotocol that specifies the position of the virtual location in thewrite request. The index application extracts the virtual location fromthe write request in accordance with the predefined protocol.

In 605, the seismic cube index is queried to obtain a storage locationof the section or sections having the current version of the portion ofthe seismic cube in one or more embodiments. In particular, until thesection or sections are identified, the section virtual location iscompared with the portion virtual location for each entry in the seismiccube index. The comparison determines whether the portion is in all orpart of the boundaries of the section. If the portion is within theboundaries of the section, then the section is identified.

In 607, a determination is made whether to create a new section for theseismic cube. In one or more embodiments, the decision to create a newsection may be based, for example, on the write policy. For example, ifthe write policy indicates that when multiple applications are accessingthe section of the seismic cube, then a determination is made whetheronly one analysis application is accessing the section(s) of the seismiccube. In other words, a determination is made whether multiple analysisapplications are processing seismic data in the same section of theseismic cube in parallel. For example, one analysis application may beprocessing seismic data in one portion of the section while anotheranalysis application is processing seismic data in another portion ofthe section. As another example, the write policy may indicate that whena particular user or analysis application is writing seismic data, a newsection should be created. By way of another example, the write policymay indicate a new section should be written based on the amount ofchange in the seismic data for the portion of the seismic cube. In otherwords, the write policy may enforce version control whereby substantialchanges to portions of the seismic cube create a new version by creatinga new section for the portion. The write policy may be based on datapreservation, a requirement for multiple different versions for qualitycontrol, security, user access rights, etc.

In one or more embodiments, the write policy may be enforced by theseismic cube index application or the analysis application. For example,the analysis application may send the write request with a request thata new version is written. If the application sends the request that thenew version is written, then the determination in Step 607 may beperformed by determining whether such a request is received.Alternatively or additionally, the seismic cube index application mayenforce the write policy.

In 609, if a determination is made not to create a new section, theseismic cube index is queried to obtain mapping parameters for mappingdata locations in the one or more section of the seismic cube with thevirtual location in the write request in one or more embodiments.Specifically, the mapping parameters are extracted from the index entrycorresponding to the section.

In 611, data locations in the section(s) corresponding to the portion ofthe seismic cube are calculated in one or more embodiments. In one ormore embodiments, calculating the data locations in the section includesusing the mapping parameters to map the portion virtual location to thesection. For example, the mapping parameters may indicate to subtract,for each dimension, a predefined value from each dimension to locateportion in the section. As another example, the mapping parameters mayprovide a function specifying how to map a portion virtual location tothe data locations in the section. Thus, the index application may usethe portion virtual location as input to the function in the mappingparameters to obtain the data location in the section.

In 613, the write request is transmitted on behalf of the analysisapplication to the storage location of the section(s) in one or moreembodiments. Specifically, for each section identified in 605, a writerequest is transmitted to the particular location in the storage devicestoring the section. The write request transmitted in 613 includes thedata location calculated in 611. In one or more embodiments, rather thanthe index application directly transmitting the write request, 613 maybe performed by the index application redirecting the analysisapplication and/or the analysis computing device to write to the storagelocation(s). When the storage device receives the write request, thestorage device stores the seismic data in the sections of the seismiccube. Specifically, the storage device updates the data locations in thewrite request with the resultant seismic data in the write request.

Returning to 607, if the determination is made to create a new section,then a new storage location is selected for storing a new section of theseismic cube in 615. In one or more embodiments, the new storagelocation may be selected based on a write policy to the analysiscomputing device executing the analysis application. For example, thenew storage location may be selected based on access time for theanalysis application to access the storage location. In another example,the new storage location may be based on proximity, such as being in thesame building, same country, or on the same computing device as theanalysis application. By way of another example, the new storagelocation may be selected based on import and/or export regulations, suchas the existence of any trade embargos. Other criteria for selecting thestorage device may be used without departing from the scope of theclaims.

In 617, the resultant seismic is stored in the storage location as a newsection of the seismic cube in one or more embodiments. Specifically, awrite request may be transmitted on behalf of the analysis applicationto the storage location. In one or more embodiments, rather than theindex application directly transmitting the write request, the indexapplication redirecting the analysis application and/or the analysiscomputing device to write to the storage location. When the storagedevice receives the write request, the storage device creates a newsection and stores the seismic data in the new section of the seismiccube.

In 619, the seismic cube index is updated to reflect a new version forthe section of the seismic cube stored in the storage location.Specifically, the portion virtual location in the write request may beused as the section virtual location in the new index entry for the newsection. Mapping parameters may be created to map the virtual locationto the data locations in the section. Further, in one or moreembodiments, the version information may be updated. Updating theversion information may include updating the version number for theportion of the seismic cube created to reflect that the new section isthe most recent version of the seismic cube. For example, if the versionnumber is a numeric number, then the version number(s) of the one ormore index entries identified in 605 are identified. The maximum valueof the identified version number(s) is identified. The maximum value isincremented and stored as the version number for the new index entry. Ifthe version number is a time stamp, then a timestamp is added for thenew index entry. Additionally or alternatively, updating the versioninformation may include adding a username of the user writing thesection, adding comments from the user, adding a program identifier ofthe analysis application, and/or other such information.

In 621, the seismic cube index is updated for the previous section toindicate that a new version is created for the portion of the seismiccube. For example, updating the index entry may include marking theversion information in the index entry to reflect that at least oneportion of the seismic cube is no longer the most recent version. Theversion information may also be updated with the portion virtuallocation to specify which portion is no longer the most recent version.By marking the index entry, the index application, when accessing theindex entry, is aware that for a particular portion, the correspondingsection is no longer the most recent version.

The various steps of FIGS. 5 and 7 may be performed repeatedly orintermittently, such as each time an analysis application accesses aparticular portion of the seismic cube, each time the analysisapplication performs a write request, at a predefined interval, etc.Alternatively, the various steps may be performed once, such as thefirst time that the analysis application requests access to theparticular portion of the seismic cube.

The following examples are for explanatory purposes only and notintended to limit the scope of the invention. FIGS. 7.1 and 7.2 show anexample in one or more embodiments. In the following example, considerthe scenario in which two analysis applications (e.g., analysisapplication F (702), Analysis Application G (704)) are accessing theseismic cube. Each analysis application executes on an analysiscomputing device that has local storage (e.g., local analysis computingdevice F storage (706), local analysis computing device G storage(708)). As shown in FIG. 7.1, the seismic cube as seen by each analysisapplication (710) is a complete cube. In other words, each exampleanalysis application requests access to the seismic cube as if theseismic cube is located on a single storage device as a unified whole.As shown in FIG. 7.1, in actuality, section 1 of the seismic cube (712)may be stored on network storage X (714) while section 2 of the seismiccube (716) is stored across the Internet (720) on network storage Y(718).

For the example, consider the scenario in which analysis application F(702) requires access to read portions in both section 1 of the seismiccube (712) and section 2 of the seismic cube (716) and write to section1 of the seismic cube (712). Further, analysis application G (704)requires access to read and write from a different portion in section 2of the seismic cube (716). In the example, when each applicationtransmits a read request, the index application may identify theparticular storage device storing the portion and send a read request tothe particular storage device.

In other words, when analysis application F (702) sends a read requestusing the portion virtual identifier, the index application identifiesboth section 1 (712) and section 2 (716) as having the requested portionand identifies the data locations of the sub-portions using the portionvirtual identifier. The index application sends a read request tonetwork storage X (714) and network storage Y (718) with the datalocations and receives the sub-portions from the section. The indexapplication may then merge the two sub-portions together to create asingle unified portion and transmit the single unified portion toanalysis application F (702).

At the same time, when analysis application G (704) sends a read requestusing the portion virtual identifier, the index application identifiesonly section 2 (716) as having the requested portion and identifies thedata location of the requested portion. The index application sends aread request to network storage Y (718) with the data location, receivesthe portion, and transmits the portion to analysis application G (704).

When analysis application F (702) writes to the sub-portion in section 1(712), the index application determines that analysis application F isthe only application writing to section 1 (712). Accordingly, afteridentifying the data location of the particular portion of section 1(712) in the write request, the index application sends a write requestto the network storage X (714) with the data location. The updatedseismic data is written to section 1 of the seismic cube.

When analysis application G (704) requests to write to the portion thatis in section 2 (716), the index application determines that analysisapplication G (704) is not the only application accessing section 2(718). Accordingly, as shown in FIG. 7.2, index application identifies astorage device (e.g., local analysis computing device G storage (708))to store a new section (e.g., section 3 of the seismic cube (722). Indexapplication sends a write request to local analysis computing device Gstorage (708) to write section 3 (722). Further, index applicationupdates the seismic cube index to include a new index entry for section3 of the seismic cube (722). Thus, additional read and write accesses tothe portion of the seismic cube in section 3 (722) are routed to localanalysis computing device G storage (708).

FIG. 8 shows another example in one or more embodiments. For thefollowing example, consider the scenario in which in one building, acompany has its main servers (802). The main servers (802) store theentire seismic cube (804). A secondary office (806) has only a sectionof the seismic cube (808). An oilfield application located in thesecondary office perceives only a small portion of the section of theseismic cube (812) because the oilfield application (810) does notrequire the entire seismic cube. When the oilfield application updates aportion of the section, the updated portion (816) may be stored on thelocal computer (814) of the oilfield application (810) thereby providingfaster data access to the updated portion (816). Thus, the oilfieldapplication (810) using the index application may quickly access theupdated portion (816). However, when the oilfield application (810)requires a portion that is not in the updated portion (816), the indexapplication may transmit the access request of the oilfield application(810) to the secondary office (806) because the secondary officeprovides faster response time then the company's main servers (802). Theupdated portion may be propagated over time to the entire seismic cube(804). Similarly, the index entry for the section of the seismic cube inthe secondary office 806 may be updated to reflect that it is no longerthe most current version for the updated portion (816).

As shown in the examples, embodiments provide a mechanism fordistributing a seismic cube amongst multiple storage devices. Further,embodiments provide a mechanism for an analysis application to read andwrite to the seismic cube without being aware that the seismic cube isdistributed or where the portion of the seismic cube that it isaccessing is located.

While the invention has been described with respect to a limited numberof embodiments, those skilled in the art, having benefit of thisdisclosure, will appreciate that other embodiments can be devised whichdo not depart from the scope of the invention as disclosed herein.Accordingly, the scope of the invention should be limited only by theattached claims. It is the express intention of the applicant not toinvoke 35 U.S.C. §112, paragraph 6 for any limitations of any of theclaims herein, except for those in which the claim expressly uses thewords ‘means for’ together with an associated function. Additionally,unless expressly indicated to the contrary, the use of ordinal numbers(e.g., “first,” “second,” “third”) in the claims only indicates that thesucceeding nouns modified by the ordinal numbers are distinct from thesame noun having different ordinal number as a modifier. The use of theordinal numbers, unless expressly indicated to the contrary, does notindicate a particular position in the seismic cube.

1. A method for processing requests for seismic data, comprising:receiving, from a requestor, a first read request to read a firstportion of a seismic cube, the first read request comprising a virtuallocation of the first portion, wherein the seismic cube is a set ofseismic data elements specified for each portion of a geographic regionthat specifies a position of each data element in the geographic region,and wherein the virtual location is a geographic identifier of the firstportion defined in relation to the seismic cube; querying a seismic cubeindex to obtain a mapping parameter and a first storage location of afirst section including the first portion of the seismic cube, themapping parameter mapping virtual locations in the seismic cube withdata locations in the first section, wherein the first section isidentified using the virtual location of the first portion; calculating,with a computer processor and using the mapping parameter, a first datalocation in the first section corresponding to the virtual location ofthe first portion; and transmitting a second read request to the firststorage location of the first section, wherein the second read requestcomprises the first data location, wherein the requestor receives thefirst portion from the first storage location.
 2. The method of claim 1,wherein the requestor receiving the first portion from the first storagelocation comprises: receiving a response to the second read request,wherein the response comprises the first portion; and forwarding theresponse to the requestor.
 3. The method of claim 1, further comprising:detecting that the first portion of the seismic cube spans the firstsection and a second section; querying the seismic cube index toidentify a second storage location of the second section; calculating asecond data location in the second section corresponding to the virtuallocation of the first portion; transmitting a third read request to thesecond storage location, the third read request comprising the seconddata location; receiving seismic data from the first section and thesecond section; merging the seismic data from the first section and thesecond section into the first portion of the seismic cube; andtransmitting the first portion of the seismic cube to the requestor. 4.The method of claim 1, further comprising: receiving, from therequestor, a write request for writing resultant seismic data to seismiccube, the write request comprising a virtual location of a secondportion of the seismic cube; querying, using the virtual location of thesecond portion, the seismic cube index to identify a second sectionhaving the second portion; selecting a second storage location forstoring a new section of seismic cube; storing, in the second storagelocation, the resultant seismic data as the new section; updating theseismic cube index to reflect that the second portion is stored in thesecond storage location; and updating the seismic cube index toindicate, for the second section, that a new version is created for thesecond portion.
 5. The method of claim 4, wherein selecting the secondstorage location is performed in accordance with a write policy.
 6. Themethod of claim 4, wherein the first section is the same as the secondsection.
 7. The method of claim 1, further comprising: receiving, fromthe requestor, a first write request for writing resultant seismic datato the seismic cube, the first write request comprising a virtuallocation of a second portion of the seismic cube; querying, using thevirtual location of the second portion, the seismic cube index toidentify a second section having a second portion; and sending, to thesecond section, a second write request to write the resultant seismicdata.
 8. The method of claim 7, wherein the first section is the same asthe second section.
 9. The method of claim 1, further comprising:receiving the first portion of the seismic cube; analyzing the firstportion of the seismic cube to obtain analysis results; and sending,based on the analysis results, instructions for performing an oilfieldoperation to oilfield equipment located at the oilfield.
 10. The methodof claim 1, wherein the seismic cube is divided into sections across aplurality of storage devices distributed across a network.
 11. Themethod of claim 1, wherein the requestor is analysis application. 12.The method of claim 1, wherein receiving the first read requestcomprises: intercepting the first read request.
 13. A system,comprising: a memory device; a seismic cube index stored in the memorydevice and comprising a plurality of index entries, a first entry of theplurality of index entries comprising: a virtual location of a firstsection, a first storage location of the first section; and a mappingparameter for mapping virtual locations in a seismic cube to datalocations in the first section, wherein the seismic cube is a set ofseismic data elements specified for each portion of a geographic regionthat specifies a position of each data element in the geographic region;and a computer processor; a seismic cube index application, executing onthe computer processor, and configured to: receive a first read requestto read a first portion of the seismic cube, the first read requestcomprising a virtual location of the first portion, wherein the virtuallocation is a geographic identifier of the first portion defined inrelation to the seismic cube; query, using the virtual location of thefirst portion, the seismic cube index to obtain the mapping parameterand the first storage location of the first section having the firstportion, wherein the first section is identified using the virtuallocation of the first section and the virtual location of the firstportion; calculate, using the mapping parameter, a first data locationin the first section corresponding to the virtual location of the firstportion; and transmit a second read request to the first storagelocation of the first section, the second read request comprising thefirst data location.
 14. The system of claim 13, further comprising: afirst storage device for storing the first section; and a second storagedevice for storing a second section, wherein the plurality of entriescomprises a second entry comprising: a virtual location of the secondsection; and a second storage location of the second section, the secondstorage location identifying the second storage device, and wherein theseismic cube index application is further configured to: detect that thefirst portion spans the first section and the second section; query,using the virtual location of the first portion, the seismic cube indexto identify the second storage location of the second section; calculatea second data location in the second section corresponding to thevirtual location of the first portion; transmit a third read request tothe second storage location, the third read request comprising thesecond data location; receive seismic data from the first section andthe second section; merge the seismic data from the first section andthe second section into the first portion; and transmit the firstportion to a requestor.
 15. The system of claim 13, further comprising:a plurality of storage devices comprising: a first storage device forstoring the first section; a second storage device for storing a secondsection; and a third storage device, wherein the seismic cube indexapplication is further configured to: receive, from a requestor, a writerequest for writing resultant seismic data to seismic cube, the writerequest comprising a virtual location of a second portion of the seismiccube; query, using the virtual location of the second portion, theseismic cube index to identify the second section having the secondportion corresponding to the second virtual location; select a secondstorage location on the third storage device for storing a new sectionof seismic cube; store, in the second storage location, the resultantseismic data as the new section; update the seismic cube index toreflect that the second portion is stored in the second storagelocation; and update the seismic cube index to indicate, for the secondsection, that a new version is created for the second portion.
 16. Thesystem of claim 15, wherein selecting the second storage location isperformed in accordance with a write policy.
 17. The system of claim 15,wherein the first portion is the same as the second portion.
 18. Thesystem of claim 13, further comprising: an analysis device comprising ananalysis application, wherein the analysis application is configured to:receive the first portion of the seismic cube; analyze the first portionof the seismic cube to obtain analysis results; and send, based on theanalysis results, instructions for performing an oilfield operation tooilfield equipment located at the oilfield, wherein the analysisapplication is the requestor.
 19. (canceled)
 20. (canceled)
 21. Anon-transitory computer readable medium comprising executableinstructions for processing requests for seismic data, the executableinstructions comprising functionality to: receive, from a requestor, afirst read request to read a first portion of a seismic cube, the firstread request comprising a virtual location of the first portion, whereinthe seismic cube is a set of seismic data elements specified for eachportion of a geographic region that specifies a position of each dataelement in the geographic region, and wherein the virtual location is ageographic identifier of the first portion defined in relation to theseismic cube; query a seismic cube index to obtain a mapping parameterand a first storage location of a first section including the firstportion of the seismic cube, the mapping parameter mapping virtuallocations in the seismic cube with data locations in the first section,wherein the first section is identified using the virtual location ofthe first portion; calculate, with a computer processor and using themapping parameter, a first data location in the first sectioncorresponding to the virtual location of the first portion; and transmita second read request to the first storage location of the firstsection, wherein the second read request comprises the first datalocation, wherein the requestor receives the first portion from thefirst storage location.
 22. The non-transitory computer readable mediumof claim 21, wherein the requestor receiving the first portion from thefirst storage location comprises: receiving a response to the secondread request, wherein the response comprises the first portion; andforwarding the response to the requestor.